home *** CD-ROM | disk | FTP | other *** search
- /*
- Eratosthenes Sieve Prime Number Program in from BYTE January 1983
- */
-
- #define TRUE 1
- #define FALSE 0
- #define size 8190
-
- char flags [size + 1];
- main()
- {
- int i, prime, k, count, iter;
-
- printf ("10 iterations\n");
- for (iter = 1; iter <= 10; iter++) /* do program 10 times */
- {
- count = 0; /* prime counter */
- for (i = 0; i <= size; i++) /* set all flags true */
- flags [i] = TRUE;
- for (i = 0; i <= size; i++)
- {
- if (flags [i]) /* found a prime */
- {
- prime = i + i + 3; /* twice index + 3 */
- /* printf ("\n%d", prime); */
- for (k = i + prime; k <= size; k+= prime)
- flags [k] = FALSE; /* kill all multiple */
- count++; /* primes found */
- }
- }
- }
- printf ("%d primes.\n", count); /* primes found on 10th pass */
- }